package com.zmn.oms.zmn.facade.interfaces.order;

import com.zmn.oms.common.dto.ResultDTO;
import com.zmn.oms.common.exception.OmsBaseException;
import com.zmn.oms.model.bo.order.OrderBO;
import com.zmn.oms.model.dto.order.create.CallCenterOrderCluesDTO;
import com.zmn.oms.model.dto.order.create.CreateOrderFailMessage;

/**
 * 类描述：创建订单入口
 *
 * @author lhl
 * @date 2020/02/01 13:49
 */
public interface CreateOrderFacade {

    /**
     * 通过呼叫中心推送过来的订单线索下单
     * @param callCenterOrderCluesDTO
     * @return
     * @throws OmsBaseException
     */
    ResultDTO<OrderBO> createOrderByCallCenterOrderClues(CallCenterOrderCluesDTO callCenterOrderCluesDTO) throws OmsBaseException;

    /**
     * 处理创建订单失败的情况，主要针对第三方对接情况
     * @param createOrderFailMessage
     * @return
     * @throws OmsBaseException
     */
    ResultDTO onCreateOrderFail(CreateOrderFailMessage createOrderFailMessage);
}
